home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 98 / Skunkware 98.iso / INSTALL < prev    next >
Text File  |  1998-07-21  |  9KB  |  309 lines

  1. #!/bin/ksh
  2. #
  3. # INSTALL - Run this to install the Skunkware components on this CD.
  4. #
  5. # Written by Ronald Joe Record (rr@sco.com), some snippets contributed by
  6. # Michael Hopkirk (hops@sco.com)
  7. #
  8. # Edit the following setting of MOUNTPT to be wherever you have
  9. # mounted the SCO Skunkware 98 CD-ROM. By default, i have set it
  10. # to /mnt. If you mounted the SCO Skunkware 98 CD-ROM on /usr/skunk98,
  11. # then you would set MOUNTPT=/usr/skunk98
  12. #
  13.  
  14. MOUNTPT=/mnt
  15.  
  16. #
  17. # ------------------------------------------------------------------
  18. #
  19. # In order to easily access many of the installed SCO Skunkware 98
  20. # components, you may wish to add /usr/local/bin to your PATH and
  21. # /usr/local/man to your MANPATH. For instance, a Bourne shell user
  22. # could add the following to their $HOME/.profile :
  23. #         PATH=$PATH:/usr/local/bin
  24. #         MANPATH=$MANPATH:/usr/local/man
  25. #         export PATH MANPATH
  26. # The system administrator can set these on a system-wide basis by
  27. # modifying the files /etc/default/login and /etc/default/man.
  28. #
  29. # ------------------------------------------------------------------
  30.  
  31. getyn() {
  32.         ans=
  33.         while [ "$ans" = "" ]
  34.         do
  35.                 read ans
  36.                 [ "$ans" = "Y" ] || [ "$ans" = "y" ] && {
  37.                         ans=Y
  38.                         break
  39.                 }
  40.                 [ "$ans" = "n" ] || [ "$ans" = "N" ] && {
  41.                         ans=N
  42.                         break
  43.                 }
  44.                 ans=
  45.                 echo "\nPlease answer with a Y or N \c"
  46.         done
  47. }
  48.  
  49. AddCompList()
  50. {
  51.     PACKAGES="$PACKAGES `grep '.cmpnt$' $MOUNTPT/osr5/CONTENTS | grep $1 | \
  52.              sed -e 's/.cmpnt$//' -e 's/.*\///' | sort`"
  53. }
  54.  
  55. CheckCompName()
  56. {
  57.     pkg=$1
  58.     p=`grep -i $pkg $COMPFILE | head -1`
  59.     if [ "$pkg" != "$p" ]; then
  60.         echo -n "No match for '$pkg' - did you mean '$p' ? (y/n) "
  61.         getyn
  62.         case $ans in
  63.         [yY]*) pkg=$p 
  64.             ;;
  65.         [nN]*)
  66.             echo "\nSelect one of the following"
  67.             PS3='Please enter a number '
  68.             select i in `grep -i $pkg $COMPFILE`
  69.             do
  70.                 pkg=$i
  71.                 break
  72.             done
  73.             ;;
  74.         *)  echo "Skipping $pkg ..."
  75.             ;;
  76.         esac
  77.     fi
  78.     COMPCK="$COMPCK $pkg"
  79. }
  80.  
  81. GetPackageList()
  82. {
  83.     echo "\nEnter the list of Skunkware 98 components you would like to install"
  84.     echo "at this time. Enter one or more components per line and terminate"
  85.     echo "the list by entering an empty component name (press <Enter>)."
  86.     echo "\nA list of Skunkware 98 component names is available via either"
  87.     echo "\tnetscape file:$MOUNTPT/osr5/COMPONENTS.html"
  88.     echo "or"
  89.     echo "\tpg $MOUNTPT/osr5/COMPONENTS"
  90.     while echo "\nEnter component name(s) (<Enter> to quit): \c"
  91.     do
  92.         read compname
  93.         [ "$compname" ] || break
  94.         COMPCK=
  95.         for j in $compname
  96.         do
  97.             CheckCompName $j
  98.         done
  99.         PACKAGES="$PACKAGES $COMPCK"
  100.     done
  101. }
  102.  
  103. OpenServer() {
  104. while [ ! -d $MOUNTPT/opt/K/SKUNK98 ]
  105. do
  106.     echo "\nIt appears you have the SCO Skunkware 98 CD-ROM mounted"
  107.     echo "somewhere other than $MOUNTPT .\n"
  108.     echo "Please enter the full absolute pathname of the CD-ROM"
  109.     echo "mount point (e.g. /cdrom, /usr/skunk, ...) : \c"
  110.     read MOUNTPT
  111. done
  112. #
  113.  
  114. ALL=
  115. PACKAGES=
  116. COMPFILE=$MOUNTPT/osr5/COMPONENTS 
  117. SETS="Install_All_Components Audio/Video_Components Database_Management_Components Development_Tools Editors Emulators File_and_Shell_Utilities Interpreters Java_Classes_and_Applications Mail_and_News_Components Networking_and_Internet_Components Shells System_Administration_Components Text_Processing_Components X11_Graphical_Components Enter_Individual_Components_Manually End_Selection"
  118.  
  119. echo "\nSelect one or more of the following Skunkware 98 software sets:"
  120. PS3='Please enter a number (q or Q to exit selection dialogue) '
  121. select i in $SETS
  122. do
  123.     case $REPLY in
  124.         1) ALL=1
  125.            break
  126.            ;;
  127.         2) AddCompList audio
  128.        AddCompList video
  129.            ;;
  130.         3) AddCompList db
  131.            ;;
  132.         4) AddCompList devtools
  133.        AddCompList libraries
  134.            ;;
  135.         5) AddCompList editors
  136.            ;;
  137.         6) AddCompList emulators
  138.            ;;
  139.         7) AddCompList fileutil
  140.        AddCompList shellutil
  141.            ;;
  142.         8) AddCompList interp
  143.            ;;
  144.         9) AddCompList java
  145.            ;;
  146.         10) AddCompList mail
  147.        AddCompList news
  148.            ;;
  149.         11) AddCompList net
  150.            ;;
  151.         12) AddCompList shells
  152.            ;;
  153.         13) AddCompList sysadmin
  154.            ;;
  155.         14) AddCompList textproc
  156.            ;;
  157.         15) AddCompList x11
  158.            ;;
  159.         16) GetPackageList
  160.            ;;
  161.         [qQ]*|17) break
  162.            ;;
  163.         *) 
  164.            ;;
  165.     esac
  166.     REPLY=
  167. done
  168. if [ "$ALL" ]
  169. then
  170.   custom -p SKUNK98:default -i -m /dev/rcd0
  171. else
  172.   if [ "$PACKAGES" ]
  173.   then
  174.     for pkg in $PACKAGES
  175.     do
  176.         custom -p SKUNK98:default:$pkg -i -n -m /dev/rcd0
  177.     done
  178.   else
  179.     echo "\nWould you like to install all of the SCO Skunkware 98 custom"
  180.     echo "installable software to your hard disk at this time ? <Y/N> \c"
  181.  
  182.     getyn
  183.  
  184.     if [ "$ans" = "Y" ] 
  185.     then
  186.         custom -p SKUNK98:default -i -m /dev/rcd0
  187.     else
  188.         GetPackageList
  189.         for pkg in $PACKAGES
  190.         do
  191.             custom -p SKUNK98:default:$pkg -i -n -m /dev/rcd0
  192.         done
  193.     fi
  194.   fi
  195. fi
  196. }
  197.  
  198. UnixWare() {
  199. echo "\nWould you like to install all of the SCO Skunkware 98 pkgadd"
  200. echo "installable software to your hard disk at this time ? <Y/N> \c"
  201.  
  202. getyn
  203.  
  204. while [ ! -d $MOUNTPT/uw2/pkg ]
  205. do
  206.         echo "\nIt appears you have the SCO Skunkware 98 CD-ROM mounted"
  207.         echo "somewhere other than $MOUNTPT .\n"
  208.         echo "Please enter the full absolute pathname of the CD-ROM"
  209.         echo "mount point (e.g. /cdrom, /usr/skunk, ...) : \c"
  210.         read MOUNTPT
  211. done
  212.  
  213. if [ "$ans" = "Y" ] 
  214. then
  215.     ALL=1
  216.         for p in $MOUNTPT/uw2/pkg/*.pkg
  217.         do
  218.                 [ "$p" = "$MOUNTPT/uw2/pkg/Tcl8.pkg" ] && continue
  219.                 [ "$p" = "$MOUNTPT/uw2/pkg/Tk8.pkg" ] && continue
  220.         [ "$GEM" ] && {
  221.             b=`basename $p`
  222.             [ -f $MOUNTPT/uw7/pkg/$b ] && continue
  223.         }
  224.                 /usr/sbin/pkgadd -n -d $p all
  225.         done
  226.     [ "$GEM" ] || {
  227.             echo "Installation of SCO Skunkware 98 packages complete."
  228.             echo "In addition to these packages, Tcl 8.0b2 and Tk 8.0b2"
  229.             echo "are also contained on the CD-ROM. To install these, run"
  230.             echo "the commands :"
  231.             echo "\t/usr/sbin/pkgadd -d $MOUNTPT/uw2/pkg/Tcl8.pkg"
  232.             echo "\t/usr/sbin/pkgadd -d $MOUNTPT/uw2/pkg/Tk8.pkg"
  233.             echo "\nThe installation of these beta versions of Tcl/Tk"
  234.             echo "will overwrite some of the Tcl 7.6p2 and Tk 4.2p2"
  235.             echo "header files."
  236.     }
  237. else
  238.         for p in $MOUNTPT/uw2/pkg/*.pkg
  239.         do
  240.         [ "$GEM" ] && {
  241.             b=`basename $p`
  242.             [ -f $MOUNTPT/uw7/pkg/$b ] && continue
  243.         }
  244.                 echo "Would you like to install $p ? <Y/N> \c"
  245.                 getyn
  246.                 [ "$ans" = "Y" ] && /usr/sbin/pkgadd -n -d $p all
  247.         done
  248. fi
  249. }
  250.  
  251. Gemini() {
  252. GEM=1
  253. #UnixWare
  254. while [ ! -d $MOUNTPT/uw7/pkg ]
  255. do
  256.         echo "\nIt appears you have the SCO Skunkware 98 CD-ROM mounted"
  257.         echo "somewhere other than $MOUNTPT .\n"
  258.         echo "Please enter the full absolute pathname of the CD-ROM"
  259.         echo "mount point (e.g. /cdrom, /usr/skunk, ...) : \c"
  260.         read MOUNTPT
  261. done
  262.  
  263. if [ "$ALL" ] 
  264. then
  265.         for p in $MOUNTPT/uw7/pkg/*.pkg
  266.         do
  267.                 /usr/sbin/pkgadd -n -d $p all
  268.         done
  269.         echo "Installation of SCO Skunkware 98 packages complete."
  270. else
  271.         for p in $MOUNTPT/uw7/pkg/*.pkg
  272.         do
  273.                 echo "Would you like to install $p ? <Y/N> \c"
  274.                 getyn
  275.                 [ "$ans" = "Y" ] && /usr/sbin/pkgadd -n -d $p all
  276.         done
  277. fi
  278. }
  279.  
  280. QueryOS() {
  281.         if [ -d /usr/sbin ]
  282.         then
  283.                 GUESS=UnixWare
  284.                 OTHER=OpenServer
  285.         else
  286.                 GUESS=OpenServer
  287.                 OTHER=UnixWare
  288.         fi
  289.         echo "I am uncertain of your operating system type."
  290.         echo "I think it's SCO $GUESS, is this correct ? <Y/N> \c"
  291.         getyn
  292.         if [ "$ans" = "Y" ]
  293.         then
  294.                 $GUESS
  295.         else
  296.                 $OTHER
  297.         fi
  298. }
  299.  
  300. case `uname` in
  301. SCO_SV) OpenServer ;;
  302. UNIX_SV) UnixWare ;;
  303. UnixWare) Gemini ;;
  304. *) QueryOS ;;
  305. esac
  306.